home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / progjour / 1990 / 05 / startup.asm < prev    next >
Assembly Source File  |  1989-12-21  |  902b  |  58 lines

  1.     title    start up code for assembly langauge
  2.     include    asm.inc
  3.  
  4.     dosseg
  5. NULL    segment    para public 'BEGDATA'
  6. NULL    ends
  7.  
  8.     public    psp,startup,dgroup_segment
  9.  
  10.     .data
  11. psp            dw    0
  12. dgroup_segment        dw    0
  13.  
  14.  
  15.     .data?
  16.     extb    _edata,_end
  17.  
  18.     .code
  19.     extn    set_argc_argv,ms_dos
  20.  
  21. ;;    startup
  22. ;
  23. ;    entry    AX    offset stack
  24. ;        ES    program segment prefix
  25. ;        SS    DGROUP
  26. ;    exit    BP    0
  27. ;    may use    AX,BX,CX,DX,DI,SI,DS,ES
  28. ;
  29. startup proc
  30.     cld
  31.     mov    bp,0
  32.     mov    psp[bp],es
  33.  
  34.     add    ax,15            ; compute number of paragraphs
  35.     mov    cl,4            ;  in program
  36.     shr    ax,cl
  37.     mov    bx,ss
  38.     add    bx,ax
  39.     sub    bx,psp[bp]
  40.  
  41.     mov    ah,4Ah            ; shrink program memory block for
  42.     call    ms_dos            ;  dynamic storage system
  43.  
  44.     mov    dgroup_segment[bp],ss
  45.  
  46.     mov    al,0            ; zero bss segment
  47.     mov    cx,offset DGROUP:_end
  48.     mov    es,dgroup_segment[bp]
  49.     mov    di,offset DGROUP:_edata
  50.     sub    cx,di
  51.     rep    stosb
  52.  
  53.     call    set_argc_argv
  54.     ret
  55. startup endp
  56.  
  57.     end
  58.